function getProd(a, b) {
    return new Promise(
        resolve => setTimeout(
            () => resolve(a * b),
            2000
        )
    )
}

/* 调用云乘法 求5的阶乘 要求使用Promise和async/await两种方式实现 */
// getProd(1, 2)
// .then(
//     // 结果能立刻出结果 就立刻return结果（相当于return 一个履约的Promise）
//     // 不能立刻出来 就return一个将来履约的Promise
//     value => {
//         console.log(value);
//         // return value * 3
//         return getFactorial(value, 3)
//     }
// )
// .then(
//     value => {
//         console.log(value);
//         return getFactorial(value, 4)
//     }
// )
// .then(
//     value => {
//         console.log(value);
//         return getFactorial(value, 5)
//     }
// )
// .then(
//     value => console.log("最终结果", value)
// )

/* 调用云乘法 求5的阶乘 要求使用Promise和async/await两种方式实现 */
getFactorial(1, 2)
    .then(value => getFactorial(value, 3))
    .then(value => getFactorial(value, 4))
    .then(value => getFactorial(value, 5))
    .then(value => console.log("最终结果", value))

/* 封装一个函数 调用云乘法 求n的阶乘 */